package com.hyt.it.ogt.kq.common.gov.constant.examsys.obt;

import lombok.Getter;

/**
 * <p>
 * 考试系统请求参数枚举(OBT)
 * </p>
 *
 * @author huangyh
 * @since 2021-07-19
 */
@Getter
public enum OBTParamEnum {

    /**
     * 通过考点或考场编码查询考点或考场注册信息
     */
    GET_REGISTER_INFO_CODE("Code", "考点或考场编号"),
    GET_REGISTER_INFO_CODE_TYPE("CodeType", "考点或考场编号的类型"),
    GET_REGISTER_INFO_CODE_TYPE_PLACE("1", "考点编号"),
    GET_REGISTER_INFO_CODE_TYPE_ROOM("2", "考场编号"),

    /**
     * 注册考场信息（OBT）
     */
    REGISTER_ROOM_ROOM_CODE("RoomCode", "考场编号"),
    REGISTER_ROOM_LINK_MAN("Linkman", "联系人"),
    REGISTER_ROOM_TEL("TEL", "联系电话"),
    REGISTER_ROOM_IP_ADDRESS("IPAddr", "IP地址"),
    REGISTER_ROOM_MAC("MAC", "MAC地址"),
    REGISTER_ROOM_CPU_AND_DISK_NO("CPUAndDiskNo", "CPU和硬盘编号"),
    REGISTER_ROOM_SERVER_NAME("ServerName", "考试服务器名称"),

    /**
     * 获取已启用的考试项目列表
     */
    GET_EXAM_TASK_LIST_CODE("Code", "考点或考场编号"),
    GET_EXAM_TASK_LIST_CODE_TYPE("CodeType", "编号类型"),
    GET_EXAM_TASK_LIST_CODE_TYPE_PLACE("1", "考点编号"),
    GET_EXAM_TASK_LIST_CODE_TYPE_ROOM("2", "考场编号"),

    /**
     * 根据考点编号得到其下的考试批次及考场信息
     */
    GET_TIME_BY_PLACE_PLACE_CODE("PlaceCode", "考点编号"),

    /**
     * 下载基础包
     */
    GET_BASE_PACKAGE_ROOM_CODE("RoomCode", "考场编号"),
    GET_BASE_PACKAGE_TYPE("Type", "包类型"),
    GET_BASE_PACKAGE_TYPE_FORMAL("1", "正式考试"),
    GET_BASE_PACKAGE_TYPE_MOCK("2", "模拟考试"),
    GET_BASE_PACKAGE_EXAM_TIME_ID("ExamTimeId", "考试时间id（批次编号）"),

    /**
     * 获取考场考务数据包
     */
    GET_ROOM_PACKAGE_ROOM_CODE("RoomCode", "考场编号"),
    GET_ROOM_PACKAGE_TYPE("Type", "包类型"),
    GET_ROOM_PACKAGE_TYPE_FORMAL("1", "正式考务包"),
    GET_ROOM_PACKAGE_TYPE_MOCK("2", "模拟考务包"),

    /**
     * 考务包下载成功后更新考务包下载状态
     */
    UPDATE_ROOM_PACKAGE_STATE_ROOM_CODE("RoomCode", "考场编号"),
    UPDATE_ROOM_PACKAGE_STATE_TIME_CODES("ExamTimeID", "批次编号（多个用英文逗号隔开）"),

    /**
     * 获取考生信息(在线添加考生)
     */
    GET_CANDIDATE_INFO_ADMISSION_NUMBER("CandidateNum", "准考证号"),
    GET_CANDIDATE_INFO_PLACE_CODE("PlaceId", "考点编号"),
    GET_CANDIDATE_INFO_ROOM_CODE("RoomId", "考场编号"),
    GET_CANDIDATE_INFO_TIME_CODE("ExamTimeId", "批次编号"),
    GET_CANDIDATE_INFO_TIME_ROOM_CODE("OrderId", "场次编号"),

    /**
     * 获取试卷包
     */
    GET_PAPER_DATA_TYPE("Type", "包类型"),
    GET_PAPER_DATA_TYPE_FORMAL("1", "正式试卷包"),
    GET_PAPER_DATA_TYPE_MOCK("2", "模拟试卷包"),
    GET_PAPER_DATA_ROOM_CODE("RoomCode", "考场编号"),
    GET_PAPER_DATA_TIME_CODE("OrderNum", "批次编号"),

    /**
     * 试卷包下载成功后更新试卷包下载状态
     */
    UPDATE_PAPER_DATA_STATE_ROOM_CODE("RoomCode", "考场编号"),
    UPDATE_PAPER_DATA_STATE_TIME_CODE("OrderNum", "批次编号"),
    UPDATE_PAPER_DATA_STATE_TYPE("Type", "包类型"),
    UPDATE_PAPER_DATA_STATE_TYPE_FORMAL("1", "正式试卷包"),
    UPDATE_PAPER_DATA_STATE_TYPE_MOCK("2", "模拟试卷包"),

    /**
     * 获取试卷授权码
     */
    GET_PAPER_AUTHORIZATION_CODE_TYPE("Type", "包类型"),
    GET_PAPER_AUTHORIZATION_CODE_TYPE_FORMAL("1", "正式授权码包"),
    GET_PAPER_AUTHORIZATION_CODE_TYPE_MOCK("2", "模拟授权码包"),
    GET_PAPER_AUTHORIZATION_CODE_TIME_CODE("OrderNum", "批次编号"),
    GET_PAPER_AUTHORIZATION_CODE_ROOM_CODE("RoomCode", "考场编号"),
    GET_PAPER_AUTHORIZATION_CODE_PAPER_CODE("PaperName", "试卷编号，多套用'|'隔开"),

    /**
     * 获取考场重考考务数据包
     */
    GET_RESIT_ROOM_PACKAGE_TYPE("Type", "包类型"),
    GET_RESIT_ROOM_PACKAGE_TYPE_FORMAL("1", "正式考务包"),
    GET_RESIT_ROOM_PACKAGE_TYPE_MOCK("2", "模拟考务包"),
    GET_RESIT_ROOM_PACKAGE_ROOM_CODE("RoomCode", "考场编号"),

    /**
     * 获取试卷授权码成功后通知考务更新试卷授权码状态
     */
    UPDATE_PAPER_AUTHORIZATION_CODE_STATE_TYPE("Type", "包类型"),
    UPDATE_PAPER_AUTHORIZATION_CODE_STATE_TYPE_FORMAL("1", "正式授权码包"),
    UPDATE_PAPER_AUTHORIZATION_CODE_STATE_TYPE_MOCK("2", "模拟授权码包"),
    UPDATE_PAPER_AUTHORIZATION_CODE_STATE_ROOM_CODE("RoomCode", "考场编号"),
    UPDATE_PAPER_AUTHORIZATION_CODE_STATE_TIME_CODE("OrderNum", "批次编号"),
    UPDATE_PAPER_AUTHORIZATION_CODE_STATE_PAPER_CODE("PaperName", "试卷编号"),

    /**
     * 更新基础包文件下载状态
     */
    UPDATE_BASE_DATA_STATE_TYPE("Type", "考试类型"),
    UPDATE_BASE_DATA_STATE_TYPE_FORMAL("1", "正式考试"),
    UPDATE_BASE_DATA_STATE_TYPE_FORMAL_MOCK("2", "模拟测试"),
    UPDATE_BASE_DATA_STATE_ROOM_CODE("RoomCode", "考场编号"),
    UPDATE_BASE_DATA_STATE_TIME_CODE("ExamTimeId", "批次编号"),

    /**
     * 上传模拟测试报告
     */
    UPLOAD_TEST_REPORT_ROOM_CODE("RoomCode", "考场编号"),
    UPLOAD_TEST_REPORT_RESULT("Result", "测试报告XML文本"),

    /**
     * 上传封场信息
     */
    UPDATE_CLOSURE_ROOM_CODES("RoomIds", "考场编号，多个用英文逗号分割"),
    UPDATE_CLOSURE_REMARK("Remark", "封场备注"),

    /**
     * 校验是否可以上传考试结果，并获取上传路径
     */
    GET_UPLOAD_PATH_TYPE("Type", "批次类型"),
    GET_UPLOAD_PATH_TYPE_FORMAL("1", "正式"),
    GET_UPLOAD_PATH_TYPE_MOCK("2", "模拟"),
    GET_UPLOAD_PATH_ROOM_CODE("RoomCode", "考场编号"),
    GET_UPLOAD_PATH_TIME_ROOM_CODE("OrderID", "场次编号"),
    GET_UPLOAD_PATH_PACKAGE_NAME("PakName", "包名"),

    /**
     * 上传考试结果成功后通知考务更新上传状态
     */
    UPDATE_RESULT_STATE_ROOM_CODE("RoomCode", "考场编号"),
    UPDATE_RESULT_STATE_TIME_ROOM_CODE("OrderID", "场次编号"),
    UPDATE_RESULT_STATE_OBJECT_URL("objectUrl", "对象存储URL"),
    UPDATE_RESULT_STATE_TYPE("Type", "包类型"),
    UPDATE_RESULT_STATE_TYPE_FORMAL("1", "正式包"),
    UPDATE_RESULT_STATE_TYPE_MOCK("2", "模拟包"),

    /**
     * 上报考场考试过程操作数据状态
     */
    UPDATE_EXAM_MONITOR_TYPE("Type", "考试类型"),
    UPDATE_EXAM_MONITOR_TYPE_FORMAL("1", "正式考试"),
    UPDATE_EXAM_MONITOR_TYPE_MOCK("2", "模拟考试"),
    UPDATE_EXAM_MONITOR_ROOM_CODE("RoomCode", "考场编号"),
    UPDATE_EXAM_MONITOR_TIME_CODE("ExamTimeId", "批次编号"),
    UPDATE_EXAM_MONITOR_STATE_TYPE("StateType", "状态类型"),
    UPDATE_EXAM_MONITOR_STATE_TIME("StateValue", "上报时间"),

    ;

    private final String param;
    private final String remark;

    OBTParamEnum(String param, String remark) {
        this.param = param;
        this.remark = remark;
    }

}
